namespace Slick.Editors
{
	public static class SlickEditors
	{
		private static TextEditor _textEditor;
		private static IntegerEditor _integerEditor;
		private static DateEditor _dateEditor;
		private static YesNoSelectEditor _yesNoSelectEditor;
		private static CheckboxEditor _checkboxEditor;
		private static PercentCompleteEditor _percentCompleteEditor;
		private static LongTextEditor _longTextEditor;

		public static TextEditor TextEditor
		{
			get { return _textEditor ?? (_textEditor = new TextEditor()); }
		}

		public static IntegerEditor IntegerEditor
		{
			get { return _integerEditor ?? (_integerEditor = new IntegerEditor()); }
		}

		public static DateEditor DateEditor
		{
			get { return _dateEditor ?? (_dateEditor = new DateEditor()); }
		}

		public static YesNoSelectEditor YesNoSelectEditor
		{
			get { return _yesNoSelectEditor ?? (_yesNoSelectEditor = new YesNoSelectEditor()); }
		}

		public static CheckboxEditor CheckboxEditor
		{
			get { return _checkboxEditor ?? (_checkboxEditor = new CheckboxEditor()); }
		}

		public static PercentCompleteEditor PercentCompleteEditor
		{
			get { return _percentCompleteEditor ?? (_percentCompleteEditor = new PercentCompleteEditor()); }
		}

		public static LongTextEditor LongTextEditor
		{
			get { return _longTextEditor ?? (_longTextEditor = new LongTextEditor()); }
		}
	}
}